/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tabla_simbolos;

import java.util.ArrayList;

/**
 *
 * @author Karadak
 */
public class Tabla_Simbolos {
    
    int x = 0;
    
    //Lenguajes de informacion
    
    //ArrayList de XML
    //Explicacion: esta lista de arraylist son los arraylist que pide el enunciado que existan en la tabla de simbolos
    //dentro de la tabla que hay que mostrar dentro del archivo HTML, ahora el que dice metodo solamente tiene dos opciones
    //si y no, porque en el enunciado dice que si en caso fuera un metodo que muestre su valor de retorno
    //entonces lo que hago es que si es un metodo muestro "Si" de lo contrario "No" y en cuanto al valor del retorno
    //solo lo coloco en la casilla de valor, se entiende mas para el lenguaje CSS.
    public static ArrayList Tipo_XML = new ArrayList();
    public static ArrayList Valor_XML = new ArrayList();
    public static ArrayList Lenguaje_XML = new ArrayList();
    public static ArrayList Nombre_XML = new ArrayList();
    public static ArrayList Metodo_XML = new ArrayList();
    
    //String temporales de XML
    //Explicacion: estos string temporales, me sirven para tomar los valores que traen las gramaticas, por ejemplo en este
    //de XML, me toma el nombre de la variable global, es decir del que no trae comillas en <name>valor</name>
    //ahora en numero de atributos y metodos solo me jala el valor de los numero de cuantos atributos y metodos estan
    //permitidos, y en Nombre_relacion, solo obtengo el nombre que me imagino que es el que sirve para el dibujito.
    public static String Nombre_atributos_metodos = "----";
    public static String Numero_atributos = "----";
    public static String Numero_metodos = "----";
    public static String Nombre_relacion = "----";
    
    //Enteros de XML
    //Explicacion: estos arraylist unicamente me sirven para verificar que sean la misma cantidad de atributos y metodos
    //los que vienen en el CSS.
    public static ArrayList Nombre_int_xml = new ArrayList();
    public static ArrayList Atributos_xml = new ArrayList();
    public static ArrayList Metodos_xml = new ArrayList();
    public static ArrayList Relacion_xml = new ArrayList(); 
    
    //ArrayList de CSS
    //Explicacion: estos arraylist son de la tabla de simbolos del lenguaje de CSS, y actua de la misma forma los primero
    //cuatro, ahora Metodo_CSS si cambia porque ya puede tener tipo de retorno o puede ser una variable de metodo.
    //los parametros no fueron tomados en cuenta, ya que segun el enunciado no dicen que vayan, pero la verdad no se si
    //ponerlos o dejarlos.
    public static ArrayList Tipo_CSS = new ArrayList();
    public static ArrayList Valor_CSS = new ArrayList();
    public static ArrayList Lenguaje_CSS = new ArrayList();
    public static ArrayList Nombre_CSS = new ArrayList();
    public static ArrayList Metodo_CSS = new ArrayList(); 
    
    //String temporales de CSS
    
    public static String Nombre_clase_css = "----";
    //Atributos
    //Explicacion: estos string me sirven para tomar los valores de los atributos en la gramatica y depositarlos en la
    //tabla de simbolos, como van separados, los unifico todos en puntos clave y los ingreso en los arraylist
    //al final se resetean todos porque puede ser que no venga el valor o el tipo entonces queda como: "----"
    public static String Visibilidad_atributo = "----";
    public static String Tipo_atributo = "----";
    public static String Nombre_atributo = "----";
    public static String Valor_atributo = "----";
    //Metodos
    //Explicacion: estos string me sirven para tomar los valores de los metodos en la gramatica y depositarlos en la
    //tabla de simbolos, como van separados, los unifico todos en puntos clave y los ingreso en los arraylist
    //al final se resetean todos porque puede ser que no venga el valor o el tipo entonces queda como: "----"    
    public static String Visibilidad_metodo = "----";
    public static String Retorno_metodo = "----";
    public static String Nombre_metodo = "----";
    //Parametros
    //Explicacion: estos string me sirven para tomar los valores de los parametros en la gramatica y depositarlos en la
    //tabla de simbolos, como van separados, los unifico todos en puntos clave y los ingreso en los arraylist
    //al final se resetean todos porque puede ser que no venga el valor o el tipo entonces queda como: "----"
    public static String Tipo_parametro = "----";
    public static String Nombre_parametro = "----";
    public static String Titulo_relacion = "----";
    public static String Clase_relacion = "----";
    
    //Entero temporal de CSS
    //Explicacion: estos son los contadores de atributos y metodos para verificar que sean de la misma cantidad.
    public static int Contador_atributos = 0;
    public static int Contador_metodos = 0;
    
    //Lenguajes de programacion
    
    //ArrayList de Ruby
    
    public static ArrayList Tipo_Ruby = new ArrayList();
    public static ArrayList Valor_Ruby = new ArrayList();
    public static ArrayList Lenguaje_Ruby = new ArrayList();
    public static ArrayList Nombre_Ruby = new ArrayList();
    public static ArrayList Metodo_Ruby = new ArrayList();
    
    //ArrayList de C
    
    public static ArrayList Tipo_C = new ArrayList();
    public static ArrayList Valor_C = new ArrayList();
    public static ArrayList Lenguaje_C = new ArrayList();
    public static ArrayList Nombre_C = new ArrayList();
    public static ArrayList Metodo_C = new ArrayList();  
    
    
    
    // aqui va ir la tabla de simbolos

    public ArrayList getTipo_C() 
    {
        return Tipo_C;
    }

    public void setTipo_C(String tipo) 
    {
        Tabla_Simbolos.Tipo_C.add(tipo);
    }
    
    
}
